var express = require('express');
//获取路由
var router = express.Router();
//引入mongoose 操作数据库
var mongoose = require('mongoose');
//引入数据模型
var Goods = require('../models/goods.js');

//连接数据库
mongoose.connect('mongodb://127.0.0.1:27017/dbdemo')

//监听数据库连接
//成功
mongoose.connection.on("connected", function() {
  console.log('数据库连接成功')
})
//失败
mongoose.connection.on("error", function() {
  console.log('数据库连接失败')
})
//断开
mongoose.connection.on("disconnected", function() {
  console.log('数据库已断开')
})
//响应页面
//查询商品
router.get('/list', function(req, res, next) {
  /*
  	sort:排序1 -1；
  	page:当前页
  	pageSize：一页多少条
  	skip：跳过多少页（当前页-1）*条数
  	priceLevel:价格区域（all:全部 0 1 2 3）
  	priceGt:最小
  	priceLte:最大
   */
  //获取参数
  let sort = parseInt(req.param("sort"));
  let page = parseInt(req.param("page"));
  let pageSize = parseInt(req.param("pageSize"));
  let skip = (page - 1) * pageSize;
  let priceLevel = req.param("priceLevel");
  let priceGt = '';
  let priceLte = '';
  //查询条件
  let params = {};
  if (priceLevel !== 'all') {
    switch (priceLevel) {
      case '0':
        priceGt = 0;
        priceLte = 300;
        break;
      case '1':
        priceGt = 300;
        priceLte = 600;
        break;
      case '2':
        priceGt = 600;
        priceLte = 1500;
        break;
      case '3':
        priceGt = 1500;
        priceLte = 5000;
        break;
    }
    params = {
      salePrice: {
        $gt: priceGt,
        $lte: priceLte
      }
    }
  };
  //分页查询显示
  let goodsModel = Goods.find(params).skip(skip).limit(pageSize);
  //价格排序
  goodsModel.sort({ "salePrice": sort });
  //执行
  goodsModel.exec(function(err, doc) {
    if (err) {
      res.json({
        status: '1',
        msg: err.message
      })
    } else {
      res.json({
        status: '0',
        msg: '数据请求成功',
        result: doc
      })
    }
  })
});
//加入到购物车；
router.post('/addCart', function(req, res, next) {
  /*  userId:用户id
  	productId :商品id
   */
  let userId = "002";
  let productId = req.body.productId;
  //数据模型
  let User = require("./../models/user.js");
  //查询用户
  User.findOne({ "userId": userId }, function(err, userDoc) {
    if (err) {
      res.json({
        status: '1',
        msg: err.message
      })
    } else {
      //console.log(userDoc)
      if (userDoc) {
        let goodsItem = '';
        //如果购物车中商品已经添加过（只增加数量）
        userDoc.cartList.forEach(function(item) {
          if (item.productId == productId) {
            goodsItem = item;
            item.productNum++
          }
        });
        if (goodsItem) {
          userDoc.save(function(err3, doc2) {
            if (err3) {
              res.json({
                status: '1',
                msg: err3.message
              });
            } else {
              res.json({
                status: '0',
                msg: "商品添加成功"
              });
            }
          });
        } else { //购物车中没有添加过此商品
          //查询商品
          Goods.findOne({ productId: productId }, function(err2, doc) {
            if (err2) {
              res.json({
                status: '1',
                msg: err2.message
              });
            } else {
              if (doc) { //更改数据
                doc.productNum = 1;
                doc.checked = 1;
                userDoc.cartList.push(doc);
                //更新信息
                userDoc.save(function(err3, doc2) {
                  if (err3) {
                    res.json({
                      status: '1',
                      msg: err3.message
                    });
                  } else {
                    res.json({
                      status: '0',
                      msg: "商品添加成功"
                    });
                  }
                });
              };
            }
          })
        }
      }
    }
  })
});
//导出
module.exports = router;
